package com.glp.work.flow.service;

import java.util.List;
import java.util.Map;

import com.glp.work.flow.dto.ProcTaskInfoDTO;
import com.glp.work.flow.dto.request.AssignUserInfoDTO;
import com.glp.work.flow.dto.request.ProDefDTO;
import com.glp.work.flow.dto.request.ProcTaskAssignInfoDTO;
import com.glp.work.flow.pojo.WfTaskAssign;

/** 
* 用户任务分配
* @author  pengjia 
* @version 2020年5月18日 下午1:42:46 
*/
public interface UserTaskAssignService {

	/**
	 * 所有用户信息查询
	 */
	List<AssignUserInfoDTO> queryAllUserInfo();
	/**
	 * 查询所有已部署的流程定义
	 */
	List<ProcTaskInfoDTO> queryProAllTaskDefInfo(ProDefDTO request);
	/**
	 * 保存任务分配信息
	 */
	void saveTaskAssignInfo(ProcTaskAssignInfoDTO procTaskAssignInfoDTO);
	/**
	 * 保存任务分配信息
	 */
	void saveTaskAssignInfoNew(ProcTaskAssignInfoDTO procTaskAssignInfoDTO);
	/**
	 * 查询所有任务节点信息
	 */
	List<WfTaskAssign> queryProAllTaskDefInfo(String procInsId, String procDefId);
	/**
	 * 删除所有任务分配信息。
	 */
	void deleteAllTaskAssignInfo(ProcTaskAssignInfoDTO procTaskAssignInfoDTO, WfTaskAssign taskAssign);
	/**
	 * 查询当前节点外的其他节点
	 */
	List<Map<String,String>> queryPresentTaskDefInfo(ProDefDTO req);

	List<ProcTaskInfoDTO> queryProAllTaskDefInfoNew(ProDefDTO req);

	/**
	 * 根据当前节点id查询配置信息
	 * @param taskDefinitionKey
	 * @return
	 */
	WfTaskAssign setlectByTaskDefId(String procDefId,String taskDefinitionKey);

}
